var myajax = {};

/** ajax请求 */
myajax.XHR = function(params) {
	var params = $.extend({
		// 返回类型默认json
		dataType : "json",
		// 默认发送信息至服务器时内容编码类型
		// contentType : "application/x-www-form-urlencoded",
		contentType : "application/json",
		// 请求类型默认POST
		type : "POST",
		// 默认超时时间
		timeout : 1800000,
		// 默认请求同步
		isAsync : false
	}, params);
	$.ajax({
		url : params.url,
		dataType : params.dataType,
		type : params.type,
		timeout : params.timeout,
		data : params.queryParams,
		contentType : params.contentType,
		async : params.isAsync,
		success : function(data) {
			if (params.callback) {
				params.callback(data);
			}
		},
		error : function(XMLHttpRequest, textStatus, errorThrown) {
			console.log(XMLHttpRequest.responseText);
			console.log(XMLHttpRequest.readyState);
			console.log(errorThrown);
		},
		complete : function(XMLHttpRequest, status) { // 请求完成后最终执行参数
			if (params.complete) {
				params.complete(XMLHttpRequest, status);
			}
			if (status == 'timeout') {// 超时,status还有success,error等值的情况
				console.log('请求超时');
			}
		}
	});
};

/** 通过ajax请求获取数据并执行回调 */
myajax.callbackAfterXhr = function(params) {
	var params = $.extend({
		isAsync : true
	}, params);
	myajax.XHR({
		url : params.url,
		queryParams : params.queryParams,
		contentType : params.contentType,
		timeout : params.timeout,
		isAsync : params.isAsync,
		callback : function(data) {
			if (params.callback) {
				params.callback(data);
			} else {
				if (data.success) {
					params.callback(data);
				} else {
					if (!params.failCallback) {
						console.log("操作失败:" + data.message);
					} else {
						params.failCallback(data);
					}
				}
			}
		},
		complete : params.complete
	});
};
